// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV // 默认环境配置
})

// 云函数入口函数
exports.main = async (event, context) => {
  const db = cloud.database()
  const MAX_LIMIT = 100
  const limit = event.limit || 6 // 默认获取6条

  try {
    // 获取记录数量
    const countResult = await db.collection('products').count()
    const total = countResult.total
    
    // 限制获取数量不超过最大限制
    const batchTimes = Math.ceil(Math.min(total, MAX_LIMIT) / limit)
    
    // 承载所有读操作的 promise 的数组
    const tasks = []
    
    for (let i = 0; i < batchTimes; i++) {
      const promise = db.collection('products')
        .orderBy('createTime', 'desc') // 按创建时间倒序排列
        .skip(i * limit)
        .limit(limit)
        .get()
      tasks.push(promise)
    }
    
    // 等待所有
    const data = (await Promise.all(tasks)).reduce((acc, cur) => ({
      data: acc.data.concat(cur.data),
      errMsg: cur.errMsg
    }))
    
    return {
      success: true,
      data: data.data,
      total
    }
  } catch (err) {
    console.error('获取产品列表失败', err)
    return {
      success: false,
      errMsg: err.message
    }
  }
} 